package com.pubinfo.passbook.common.service.ruler;

import com.alibaba.fastjson.JSONObject;
import com.pubinfo.passbook.common.model.bo.witeoff.CityInfo;
import com.pubinfo.passbook.common.model.ruler.PayInformation;
import org.springframework.stereotype.Service;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

@Service
public interface RuleWenZhouService {
  /**
   * 温州市本级报销比例
   *
   * @return
   */
  BigDecimal municipalLevel(CityInfo info, Map<String, Object> paramEnv, Boolean isFront, List<PayInformation> payInformations);
  
  /**
   * 乐清报销比例计算
   *
   * @return
   */
  BigDecimal yueQing(CityInfo info, List<PayInformation> payInformations, Map<String, Object> paramEnv);
  
  /**
   * 泰顺报销比例计算
   *
   * @return
   */
  BigDecimal taiShun(CityInfo info, Map<String, Object> paramEnv, Boolean isFront, List<PayInformation> payInformations);
  
  /**
   * 龙港报销比例计算
   *
   * @return
   */
  BigDecimal longGang(CityInfo info, Map<String, Object> paramEnv, Boolean isFront, List<PayInformation> payInformations);
  
  /**
   * 文成报销比例计算 暂不适用
   *
   * @return
   */
  BigDecimal wenCheng(CityInfo info, Map<String, Object> paramEnv, Boolean isFront,  PayInformation payInformation);
  
  /**
   * 永嘉报销金额计算
   *
   * @param isFront
   * @return
   */
  BigDecimal yongJia(CityInfo info, Map<String, Object> paramEnv, Boolean isFront, List<PayInformation> payInformations);
  
  /**
   * 苍南报销金额计算
   *
   * @param isFront
   * @return
   */
  BigDecimal cangNan(CityInfo info, Map<String, Object> paramEnv, Boolean isFront, List<PayInformation> payInformations);
  
  /**
   * 瑞安报销金额计算
   *
   * @return
   */
  BigDecimal ruiAn(List<PayInformation> payInformations, Map<String, Object> paramEnv);
  
  /**
   * 平阳
   *
   * @param info
   * @param payInformation
   * @return
   */
  BigDecimal pingYang(CityInfo info, Map<String, Object> paramEnv, List<PayInformation> payInformations);
  
  JSONObject testSum(List<String> passbookIds);
}
